package sort

type SelectSort struct {
	BaseSort
}

// Sort 将数组分为两个部分一部分是排好序的，一部分是未排序的，在为排序的中随机选择一个值作为最小值（或者最大值），
// 每次排序乱序部分
func (self SelectSort) Sort() {
	length := self.Len()
	for i := 0; i < length; i++ {
		temp := i
		for j := i + 1; j < length; j++ {
			if self.Less(j, temp) {
				temp = j
			}
		}
		self.Swap(temp, i)
	}
}

func (self SelectSort) Name() string {
	return "选择排序"
}
